In [1]:
from datascience import *
import numpy as np
import matplotlib
%matplotlib inline
import matplotlib.pyplot as plots
plots.style.use('fivethirtyeight')

Lecture 35 Demo¶

In [2]:
def bayes_rule(pr_a, pr_b_given_a, pr_b_given_not_a):
    prb_b = pr_a * pr_b_given_a + (1-pr_a) * pr_b_given_not_a
    return pr_a * pr_b_given_a / prb_b
In [3]:
pr_disease = 1/1000
pr_pos_given_disease = 0.99
pr_pos_given_no_disease = 0.05

bayes_rule(pr_disease, pr_pos_given_disease, pr_pos_given_no_disease)
Out[3]:
0.019434628975265017
In [4]:
pr_disease = 0.1
pr_pos_given_disease = 0.99
pr_pos_given_no_disease = 0.05

bayes_rule(pr_disease, pr_pos_given_disease, pr_pos_given_no_disease)
Out[4]:
0.6875

Getting Confident Quickly¶

In [5]:
pr_disease = np.arange(1,999)/1000
pr_pos_given_disease = 0.99
pr_pos_given_no_disease = 0.05

post = bayes_rule(pr_disease, pr_pos_given_disease, pr_pos_given_no_disease)
Table().with_columns(
    "Prior Pr(Disease)", pr_disease, 
    "Posterior Pr(Disease | Pos. Test)", post).iplot("Prior Pr(Disease)")
In [ ]: